package service;

import net.roarsoftware.lastfm.Playlist;
import net.roarsoftware.lastfm.Result;
import net.roarsoftware.lastfm.Session;

public interface PlayListService {
	
	/**
	 * Crea un playlist en last.fm para el usuario de la sesión
	 * @param title: título de la lista de reproducción
	 * @param description: descripción de la lista de reproducción
	 * @param session: sesión de usuario de last.fm
	 * @return el playlist recién creado.
	 */
	public Playlist create(String title, String description, Session session);
	
	/**
	 * Añade una canción a un determinado playlist de last.fm
	 * @param artist: artista de la canción.
	 * @param track: nombre de la canción
	 * @param session: sesión de usuario de last.fm
	 * @param playlistId: id del playlist de last.fm
	 * @return objeto Result con el resultado de la operación.
	 */
	public Result addTrack(String artist, String track, Session session, int playlistId);
	
	/**
	 * Recupera un playlist a partir de una ID.
	 * @param playlistId: id del playtlist a recuperar
	 * @return un objeto Playlist con la información del playlist.
	 */
	public Playlist getPlaylist(int playlistId);
	
	/**
	 * Crea una sesión de usuario a partir de un nombre de usuario y una contraseña
	 * @param user: nombre de usuario.
	 * @param passwd: contraseña.
	 * @return un objeto Session con la sesión del usuario.
	 */
	public Session createSession(String user, String passwd);

}
